Different devices interpret and reproduce color differently and are often referred to as having disparate color spaces. As a result, the same document may look different on two separate devices unless the devices are alike and process the image data for the document identically. For example, a document displayed on a monitor may look different when displayed on a different monitor or printed on a printer. In order to compensate for the difference in the way devices interpret and reproduce color, color transformations may be applied to image data in order to convert the data from the color space of one device to a color space of another device. In other words, a color transformation maps the colors from a source color space to a destination color space such that the colors look similar when viewed on the source device and destination device.
Generally, there are two approaches to color transformation, device dependent color transformation and device independent color transformation. Device dependent color transformation entails providing transformations to convert data from each source device within a system to each destination device within the system. This requires each transformation to have both source device color information and destination device color information. In addition, for a system having n devices, n2 transformations are required. Device independent color transformation involves providing a standard intermediate color space. A transformation is provided for each device to convert between the device color space and the standard intermediate color space. This type of system provides a number of benefits, including a reduction in the number of transformations required. For example, for a system having n devices, only n transforms are required.
The International Color Consortium (ICC) was developed to provide a standardized device independent color transformation system. The standard intermediate color space used in the ICC specification is called the profile connection space (PCS). Transformations for converting color data between a device color space and the PCS are provided in a device profile. Generally, a device profile is a file that contains parameters that define the color conversion between the device color space and the PCS. The profile comprises a header, a tag table, and tagged element data. The profile header provides information that allows the profile to be properly searched and sorted. The tag table operates as a table of contents for the tags and the tag element data in the profile. The tag element data contains the data for each tag.
The ICC specification has been periodically updated to address shortcomings of previous versions (the current version of the ICC specification is version 4.2, which is herein incorporation by reference in its entirety). One area in particular that has been recently addressed, beginning with version 4 (V4) of the ICC specification, is chromatic adaptation. Chromatic adaptation is the ability of the human visual system to adjust to different illumination sources to approximately maintain the appearance of an object's colors. For color transformation, chromatic adaptation takes into account that images from various devices may be subject to or assumed to be under different illumination.
Versions of the ICC specification prior to the V4 specification did not specify any requirement for chromatic adaptation. As a result, the chromatic adaptation applied to device color values could range from no adaptation to full adaptation with no information supplied to indicate what, if any, chromatic adaptation was applied. The V4 ICC specification addressed this issue by requiring color data for V4 profiles to be chromatically adapted to the PCS white point if chromatic adaptation is necessary (i.e. the device white point differs from the PCS white point). In addition, the V4 specification requires the chromatic adaptation matrix used to be included in a chromatic adaptation (chad) tag within the profile.
Although the V4 ICC specification attempted to address the inadequacies of previous versions' approaches to chromatic adaptation, the current specification falls short in providing an unambiguous and consistent approach. In particular, the V4 ICC specification does not mandate a particular chromatic adaptation method but, instead, provides the ability for each profile to have its own chromatic adaptation method. This can lead to different chromatic adaptation methods being applied within a single workflow, which is undefined science and was strongly recommended against by the original authors of the chromatic adaptation methods.
The current ICC specification attempts to address this problem by providing some guidance within Annex E of the specification. To address inconsistent chromatic adaptation, Annex E recommends using the inverse of the chromatic adaptation matrix for each profile (found in the chromatic adaptation tag) to “back out” the chromatic adaptation applied to each device's color data and then apply a consistent chromatic adaptation method to the color data for each device. However, the approach remains ambiguous and retains a number of shortcomings. In particular, the current ICC specification recommendations imply that the inverse chromatic adaptation matrix from each profile is used to derive the device white point, which may differ from the actual device white point used by that profile. Additionally, the current ICC specification does not provide any guidance on what chromatic adaptation method should be employed other than recommending use of the Bradford transform. However, it may be desirable to adopt the chromatic adaptation method employed by one of the profiles within the workflow. The ICC specification does not provide any guidance regarding which chromatic adaptation method should take priority.
Accordingly, an unambiguous approach to provide consistent chromatic adaptation for ICC workflows would be desirable. Additionally, the ability to support legacy profiles (i.e. versions prior to V4), V4 profiles, and profiles from future ICC specification versions would be advantageous. Further, it would be advantageous if the approach allowed flexibility for either a user or vendor to decide whether to opt into the approach and to also retain control of the chromatic adaptation applied to an ICC workflow.